import 'package:flutter/material.dart';
import 'package:love_app/model/love_record_model.dart' as LRModel;

// 恋爱记录的共享模型
class LoveRecordProvider with ChangeNotifier{
  
  Set<int> allItemIds = Set(); // 每条记录对应的id

  Map<int, List<String>> _imagesMap = {}; // 由itemID 和 高清pictures 组成的map

  int page = 1; // 获取当前加载到哪一页

  bool isEndPage = false;

  double offset = 0.0; // 记录页面的位置

  Map<int, LRModel.Data> _itemData = Map<int, LRModel.Data>(); // 保存恋爱记录的数据

  bool _isFirst = true;

  // 清除
  void clean(){
    this._itemData.clear();
    this.offset = 0.0;
    this._imagesMap.clear();
    this.page = 1;
    this.isEndPage = false;
  }

  // 赋值
  void setItemData(List<LRModel.Data> listItemData){
    listItemData.forEach((item){
      _itemData[item.id] = item;
      List<String> images = this._itemIdImages(item.pictures);
      _imagesMap[item.id] = images;
    });
  }

  // 取值
  List<LRModel.Data> getItemData(){
    return this._itemData.values.toList();
  }

  // 通过id获取item数据
  LRModel.Data getWidgetByItemID(int itemID){
    return this._itemData[itemID];
  }
  
  // 取值
  Map<int, LRModel.Data> get itemData => this._itemData;


  // 由pictures所有的高清图片组成的list
  List<String> _itemIdImages(List<LRModel.Pictures> pictures){
    List<String> imagesList = [];
    for(LRModel.Pictures item in pictures){
      imagesList.add(item.origin);
    }
    return imagesList;
  }

  // page加一
  void addPage(){
    this.page ++ ;  
  }

  // int get page => this.page;

  int nextPage(){
    return this.page+1;
  }

  // 获取itemId对应imageList
  List<String> getImagesList(int itemID){
    return this._imagesMap[itemID];
  }

  // 删除item并通知更新
  void deleteItemAndUpdate(int itemId){
    this._itemData.remove(itemId);
    this._imagesMap.remove(itemId);
    notify();
  }

  // 通知更新
  void notify(){
    notifyListeners();
  }

  bool get isFirst => this._isFirst;
  set isFirst(bool isFirst){
    this._isFirst = isFirst;
  }
}